Computer program development can be a very difficult task when dealing with a large project. With a large project, there is a significant amount of coding that needs to be done, followed by testing and debugging. This typically leads to frequent changes, new enhancements and the like.
One of the things program developers do to keep a program organized is to start with a more general type, e.g., a base class, and inherit from that class. In prototypal object systems such as JavaScript®, new objects may be derived from prototypes.
With large projects, this leads to a relatively large number of files. Typically this includes a mix of source code with documentation in the form of comments therein. There also may be code written to test the source code. Inconsistencies among the many files in a relatively large project, along with the need to check for the proper setup/teardown or definition syntax in the files can make working on a project a very cumbersome task.